home *** CD-ROM | disk | FTP | other *** search
/ PC Elektro 3 / PC-Elektro-3-cd1.bin / DesignWorks Professional Schematic Capture / DesignWorks4Setup.exe / Main / WinBoard Error Check.rfm < prev    next >
Encoding:
Text File  |  2004-10-16  |  5.7 KB  |  225 lines

  1. {
  2.   Error checking script for WINBOARD
  3.   C. Dewhurst, Jan. 21, 1996
  4.   ⌐1996 Capilano Computing Systems Ltd.
  5.   
  6.   This script checks for:
  7.   
  8.       - Devices without a valid package code
  9.     - Bad device names
  10.     - Bad or duplicate pin numbers
  11.     - Bad or duplicate signal names
  12. }
  13. $CHECK(This script is intended only for FLAT mode designs) $PURE $PHYSICAL
  14. $DEFINEBLOCK(alert)
  15. $CHECK(This report form does not work with the Report tool.  Please select the Report Xilinx/Smash tool!) $PURE $PHYSICAL $FLAT
  16. $END
  17. {
  18.   Table to translate DesignWorks default package codes to WinBoard
  19. }
  20. $DEFINEBLOCK(DW2WB)
  21. NAT3HA    TO-5,TRANSIST.LIB
  22. NAT3HB    TO-5,TRANSIST.LIB
  23. NAT3KA    TO-5,TRANSIST.LIB
  24. NAT3KB    TO-5,TRANSIST.LIB
  25. NAT3KCA    TO-5,TRANSIST.LIB
  26. NAT3PA    TO-5,TRANSIST.LIB
  27. NAT3TB    TO-5,TRANSIST.LIB
  28. NAT3ZA    TO-5,TRANSIST.LIB
  29. NAT5K    5SIP100,SIP.LIB
  30. NAT5T    5SIP100,SIP.LIB
  31. NAT8H    8DIP300,DIP.LIB
  32. NAT8HC    8DIP300,DIP.LIB
  33. NAT8J    8DIP300,DIP.LIB
  34. NAT8J8    8DIP300,DIP.LIB
  35. NAT8M    8DIP300,DIP.LIB
  36. NAT8N    8DIP300,DIP.LIB
  37. NAT8NB    8DIP300,DIP.LIB
  38. NAT8NE    8DIP300,DIP.LIB
  39. NAT9K    9SIP100,DIP.LIB
  40. NAT10H    TO-10GG-46,TRANSIST.LIB
  41. NAT10HC    TO-10GG-46,TRANSIST.LIB
  42. NAT12G    12HDR-100,CONNECTR.LIB
  43. NAT14D    14DIP300,DIP.LIB
  44. NAT14J    14DIP300,DIP.LIB
  45. NAT14JA    14DIP300,DIP.LIB
  46. NAT14M    14DIP300,DIP.LIB
  47. NAT14N    14DIP300,DIP.LIB
  48. NAT14NA    14DIP300,DIP.LIB
  49. NAT14WM    14DIP300,DIP.LIB
  50. NAT16D    16DIP300,DIP.LIB
  51. NAT16J    16DIP300,DIP.LIB
  52. NAT16N    16DIP300,DIP.LIB
  53. NAT16NA    16DIP300,DIP.LIB
  54. NAT18DA    18DIP300,DIP.LIB
  55. NAT18J    18DIP300,DIP.LIB
  56. NAT20JA    20DIP300,DIP.LIB
  57. NAT20M    20DIP300,DIP.LIB
  58. NAT20MB    20DIP300,DIP.LIB
  59. NAT20NA    20DIP300,DIP.LIB
  60. NAT24D    24DIP300,DIP.LIB
  61. NAT28NA    28DIP600,DIP.LIB
  62. TI8DPN    8DIP300,DIP.LIB
  63. TI14DPN    14DIP300,DIP.LIB
  64. TI16DPN    16DIP300,DIP.LIB
  65. TI20DPN    20DIP300,DIP.LIB
  66. TI20P    20DIP300,DIP.LIB
  67. TI24DPN    24DIP300,DIP.LIB
  68. TI28P    28DIP600,DIP.LIB
  69. TI40DPW    40DIP600,DIP.LIB
  70. TI44P    44DIP600,DIP.LIB
  71. TI48DBW    48DIP600,DIP.LIB
  72. TI52DBW    52DIP600,DIP.LIB
  73. TI68P    68DIP900,DIP.LIB
  74. XX1XX    TP-1S-S,TSTPOINT.LIB
  75. XX2XX    RC05,RESISTOR.LIB
  76. XX3XX    TO-5,TRANSIST.LIB
  77. XX4XX    TO-17,TRANSIST.LIB
  78. XX5XX    G5L-SPDT,RELAY.LIB
  79. XX6XX    6HDR-100,CONNECTR.LIB
  80. XX8XX    8HDR-100,CONNECTR.LIB
  81. XX9XX    9SIP100,SIP.LIB
  82. XX10XX    10HDR-100,CONNECTR.LIB
  83. XX14XX    14HDR-100,CONNECTR.LIB
  84. XX15XX    DB15M,CONNECTR.LIB
  85. XX16XX    16HDR-100,CONNECTR.LIB
  86. XX20XX    20HDR-100,CONNECTR.LIB
  87. XX25XX    DB25M,CONNECTR.LIB
  88. XX26XX    26HDR-100,CONNECTR.LIB
  89. XX34XX    34HDR-100,CONNECTR.LIB
  90. XX37XX    DB37M,CONNECTR.LIB
  91. XX50XX    DB50M,CONNECTR.LIB
  92. $END
  93. {
  94.   Listing defaults
  95. }
  96. $PROGRESS $PERCENTOFF
  97. $FILESUFFIX(errors.txt)
  98. $FILENAME - Error Report - $DATE
  99.  
  100. $SIGSOURCE(Ground)
  101. $SIGSOURCE(Plus5V) &Power
  102. $DESIGNSIGSOURCE &SigSources
  103. $AUTONUMBER(3)
  104. $LINETERMINATOR $NONE
  105. $PROGRESS(Checking package codes)
  106. { Create a value in WB_Package for any devices that don't have one }
  107. $DEVICES$IF($NOT(&WB_Package))$SETATTR(&WB_Package, $MAP(DW2WB, &Package))$END
  108. $LINETERMINATOR $DEFAULT
  109. $SETVAR(_AnyErrors, 0)
  110. {
  111.   Issue a warning if any devices have no package code
  112. }
  113. $FIND $DEVICES $NOT($REGEXP([^,]+\,[^.]+\.[^.]+, &WB_Package))
  114. $IF($GT($DEVCOUNT, 0))
  115.  
  116. The following devices have a missing or invalid package code.
  117. The WB_Package attribute field should contain packageCode,libName,
  118. e.g. RC05,RESISTOR.LIB
  119.  
  120. $SORT $DEVICES $DEVNAME
  121. $COMBDEVSON
  122. $DEVICES$DEVNAME    $TYPENAME    $PAGE    &WB_Package
  123. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  124. $END
  125. {
  126.   Check for multiple package codes in same package
  127. }
  128. $FIND $DEVICES
  129. $SORT $DEVICES $DEVNAME
  130. $COMBDEVSON
  131. $FIND $NOCLEAR $DEVICES $GT($COUNTVALUES(&WB_Package), 1)
  132. $IF($GT($DEVCOUNT, 0))
  133.  
  134. The following devices have inconsistent package codes:
  135.  
  136. $SORT $DEVICES $DEVNAME
  137. $COMBDEVSON
  138. $DEVICES$DEVNAME    $TYPENAME    $PAGE
  139. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  140. $END
  141. {
  142.   Check for duplicate pin numbers
  143. }
  144. $PROGRESS(Checking pin numbers)
  145. $FIND $DEVICES
  146. $SORT $DEVICES $DEVNAME
  147. $COMBDEVSON
  148. $DEVPINFORMAT $GT($SAMEPINCOUNT, 1)
  149. $FIND $SIGNALS
  150. $FIND $NOCLEAR $DEVICES $NONBLANK($MERGE$PINS)
  151. $IF($GT($DEVCOUNT, 0))
  152.  
  153. The following devices have duplicate pin numbers:
  154.  
  155. $SORT $DEVICES $DEVNAME
  156. $COMBDEVSON
  157. $DEVICES$DEVNAME    $TYPENAME    $PAGE
  158. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  159. $END
  160. {
  161.   Check for bad device names
  162. }
  163. $PROGRESS(Checking device and signal names)
  164. $FIND $DEVICES $NOT($REGEXP([A-Za-z0-9/()<>._$]+, $DEVNAME))
  165. $IF($GT($DEVCOUNT, 0))
  166.  
  167. The following devices have bad device names:
  168.  
  169. $SORT $DEVICES $DEVNAME
  170. $COMBDEVSON
  171. $DEVICES$DEVNAME    $TYPENAME    $PAGE
  172. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  173. $END
  174. {
  175.   Check for bad device value field
  176. }
  177. $FIND $DEVICES $AND($NOT($NONBLANK(&Value)), $NOT($NONBLANK(&Part)))
  178. $IF($GT($DEVCOUNT, 0))
  179.  
  180. The following devices have no Value or Part code.  This should contain the part type or component value:
  181.  
  182. $SORT $DEVICES $DEVNAME
  183. $COMBDEVSON
  184. $DEVICES$DEVNAME    $TYPENAME    $PAGE
  185. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  186. $END
  187. {
  188.   Check for bad signal names
  189.   [A-Za-z0-9./_$()\[\]<>]
  190. }
  191. $UNNAMEDSIGS(????)
  192. $FIND $SIGNALS $NOT($REGEXP([A-Za-z0-9/()<>._$]+, $SIGNAME))
  193. $IF($GT($SIGCOUNT, 0))
  194.  
  195. The following signals have bad names:
  196.  
  197. $SORT $SIGNALS $SIGNAME
  198. $FIND $DEVICES
  199. $SIGNALS$SIGNAME    $PINS
  200. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  201. $END
  202. {
  203.   Check for duplicate signal names
  204. }
  205. $FIND $SIGNALS
  206. $COMBSIGSON
  207. $SORT $SIGNALS $SIGNAME
  208. $FIND $NOCLEAR $SIGNALS $COUNT(2)
  209. $IF($GT($SIGCOUNT, 0))
  210.  
  211. The following signals have duplicate names:
  212.  
  213. $SORT $SIGNALS $SIGNAME
  214. $SIGNALS$SIGNAME    $PAGE
  215. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  216. $END
  217. $IF($EQ(&_AnyErrors, 0))
  218. No errors detected!
  219. $END
  220. { Mark the design as checked.
  221.   NOTE: It's important to do this last because the Scripter itself
  222.   sets a design attribute, thereby changing the design and updating
  223.   the date stamp. }
  224. $SETATTR(&WB_ErrChkDate, $DATE($R))
  225.